#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLineEdit>
#include <QPropertyAnimation>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void vSetStyle(QWidget* widget);
    // 设置主布局
    QHBoxLayout* mainLayout;
    QVBoxLayout* leftLayout;
    QVBoxLayout* midLayout;
    QVBoxLayout* rightLayout;
    // 设置每一行的布局
    QHBoxLayout* vLayouts[15];
    // 设置增加/删除/执行按钮
    QPushButton* addBtn;
    QPushButton* delBtn;
    QPushButton* execBtn;
    // 设置主窗口的最小宽度和高度
    int vMinWidth = 700;
    int vMinHeight = 350;
    // 记录获得的fileName的全局变量
    QString vFileNames[15];
    // 记录当前行数的全局变量 总行数 = vFileNum + 1
    int vFileNum = -1;
    // 记录LineEdit
    QLineEdit* vLineEdit[15];
    // 记录LineEdit最大最小宽度
    int vMinLineEditWidth = 300;
    int vMaxLineEditWidth = 600;
    // 记录Button的宽度
    int vButtonWidth = 100;
    // 记录每行的高度
    int vLineHeight = 40;
    // 记录Button通用样式
    QString vBtnStyle = "background-color: rgb(56, 56, 68); color: white; font-size: 15px; font-family: Verdana;border: none; border-radius: 20px;";
    // 记录LineEdit通用样式
    QString vLineEditStyle = "background-color: rgb(82, 89, 103); color: white; font-size: 15px; font-family: Verdana;border: none; border-radius: 20px;";
    // 记录执行任务成功后的LineEdit通用样式
    QString vSucceedLineStyle = "background-color: rgb(48, 184, 125); color: white; font-size: 15px; font-family: Verdana;border: none;border-radius: 20px;";
    // 记录执行任务失败后的LineEdit通用样式
    QString vFailedLineStyle = "background-color: rgb(220, 120, 170); color: white; font-size: 15px; font-family: Verdana;border: none;border-radius: 20px;";
    // 记录左上角设置按钮
    QPushButton* vSettingButton;
    // 侧边栏
    QWidget* vSideBar;
    // 侧边栏显示状态
    bool vIsSidebarVisible;
    // 记录侧边栏样式
    QString vSideBarStyle = "background: qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgb(181,200,200), stop:1 rgb(248,250,250));font-size: 15px; font-family: Verdana;border: none; ";
    // 记录Button通用样式
    QString vSideButtonStyle = "background-color: rgb(107, 152, 253); color: white; font-size: 15px; font-family: Verdana;border: none; border-radius: 20px;";
    // 记录QMsg的样式
    QString vMsgStyle = "QMessageBox { background-color: qlineargradient(x1:0, y1:1, x2:1, y2:0, stop:0 rgb(235,253,7), stop:1 rgb(92,207,243)); color: white; font-size: 15px; font-family: Verdana;border: none;border-radius: 20px; }";
//    // 主窗口遮罩层
//    QWidget* vOverlay;
private slots:
    void vFindPath();
    void vAddLine();
    void vDeleteLine();
    void vExecuteFile();
    void vControlSidebar();
    void vOpenStates();
    void vSaveStates();
private:
    Ui::Widget *ui;
    void vSetWidgetEnabled(bool enabled);
    void vSetShadow(QWidget* widget,int windowNum);
    void initButton();
    void initSideBar();
};
#endif // WIDGET_H
